package models

import (
	"context"
	"time"
)

// Sku 商品规格表
type Sku struct {
	Id          string    `json:"id" xorm:"varchar(36) pk comment('SKU ID(UUID)')"` // 使用UUID作为主键
	ProductId   string    `json:"product_id" xorm:"not null comment('商品ID') index"`
	Name        string    `json:"name" xorm:"varchar(255) not null comment('SKU名称')"`
	Price       float64   `json:"price" xorm:"decimal(10,2) not null comment('价格')"`
	OriginPrice float64   `json:"origin_price" xorm:"decimal(10,2) not null default 0 comment('原价')"`
	Stock       int       `json:"stock" xorm:"not null default 0 comment('库存')"`
	SalesVolume int       `json:"sales_volume" xorm:"not null default 0 comment('销量')"`
	Status      int       `json:"status" xorm:"tinyint(1) not null default 1 comment('状态：0无效 1有效')"`
	UpdateTime  time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime  time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (Sku) TableName() string {
	return "sku"
}

// SkuFindByIds 根据ID列表查询
func SkuFindByIds(ctx context.Context, ids []string) (data []*Sku, err error) {
	err = getSession(ctx).In("id", ids).Find(&data)
	return
}

// SkuFindOne 根据条件查询单条
func SkuFindOne(ctx context.Context, id string) (data *Sku, err error) {
	data = new(Sku)
	_, err = getSession(ctx).ID(id).Get(data)
	return
}
